<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title>对象</title>
	</head>
	<body>
		
	</body>
	<script>
		/*
		一.什么是对象，类
		
		a.对象：具体的事物，包括属性和行为
		属性：对象中的变量
		行为：属性中的方法（函数）
		b.访问对象："对象.属性名"
		c.空对象：let a={}
		模板字符串：${this.name}
		
		二.如何创建对象
		a.字面量创建对象
		b.构造函数：是一种特殊的函数，能通过这个函数构造一个对象(new)。为区别于普通函数，一般构造函数函数名首字母大写
		b1.this关键字：指当前对象
		
		c.用Object（）创建对象
		三.遍历对象
		for...in
		*/
	   //字面量创建对象
	   let cat={
		   color:'pink',
		   eye:'zongse',
		   weight:'10kg',
		   run:function(){
			   console.log('running');
		   }
	   };
		//访问对象
		console.log(cat.color);
		cat.run();
		console.log('-------------');
		//构造函数创建对象
		//1.描述函数（定义一个构造函数，在函数中描述对象的属性和行为）
			function Dog(name,age,color){
			//this关键字:指当前对象
			this.name=name;
			this.age=age;
			this.color=color;
			this.dance=function(){
				console.log(`${this.name},在跳舞`);
			}
			}
		//2.构造对象：用关键字new构造一个对象
		let dog=new Dog('福贵',2,'5kg','pink');
		console.log(dog.name);
		dog.dance();
		let obj=new Object();//实例化一个空的objec
		obj.name='ll';
		obj.class="计算机"
		obj.age=22;
		obj.play=function(){
			console.log(obj.class+obj.name+'在打游戏');
		}//访问对象
		console.log(obj.class);
		obj.play();
		console.log('-------访问新闻------');
		let xinwen={
			biaoti:"人民网",
			zhengwen:"守正创新，牢牢把握",
			data:'2024年10月31日',
			redian:function(){
				console.log('热点');
			}
		}
		console.log(xinwen.biaoti);
		xinwen.redian();
		console.log('------遍历对象-------');
		for(let i in xinwen ){
			console.log(i);//获取该对象中所有属性和方法的名
			//判断获取的值的数据类型是否为function,如果是则应该调用方法
			if (typeof xinwen[i]==='function') {
				xinwen[i]();
				
			} else{console.log(i+':'+xinwen[i])//获取该对象中所有属性和方法的值
				
			}
		
		}
	</script>
</html>
